package mvc.view;

import java.text.Normalizer;
import java.util.Scanner;
import mvc.controller.Controller;

public class ViewTerminal {

	private int i;

	public ViewTerminal(){
		Controller controller = new Controller();
		Scanner scanner = new Scanner (System.in);
		String entrada = "";
		char caractere = 0;
		boolean loop = true;
		boolean trycatch = true;
		controller.novaPalavra();
		do{	
			do {
	            System.out.println("Voce tem " + controller.getChances() + " tentativas de acertar a palavra \n" +
						           "Letras disponiveis: " + controller.getAlfabeto() + "\n" +
						           "Palavra: " + controller.getPalavraDaVez()
						          );
				do { 
					System.out.println("Informe letra:");
					trycatch = false;
					try {
						entrada = scanner.nextLine();
					    entrada = Normalizer.normalize(entrada, Normalizer.Form.NFD);  
					    entrada = entrada.replaceAll("[^\\p{ASCII}]", "");
					    caractere = entrada.charAt(0); 
					    i = entrada.length();
    
					} catch (Exception e) {
													
						
						trycatch = true;
						System.out.println("Entrada invalida!");
					}	
					
					if(i>=2){
						trycatch = true;
					}
				
					
				}while (trycatch == true);
				
			
				
				if(controller.trataEntrada(caractere)){
					System.out.println("ENTRADA NAO DISPONIVEL NO ALFABETO!");
					loop = true;
					
					
				} else {
					loop = false;
				}
				
				
			} while (loop == true);
			
			
		
			if (controller.realizarJogada()){
				System.out.println("Acertou!! \n" +
								   "Existe(m) " + controller.getAcertosPorJogada() + " ocorrencia(s) de '" + controller.getLetraDaVez() + "' na palavra oculta"
								  );
			} else {
				System.out.println("Errou!! Desculpe, nao tem '" + controller.getLetraDaVez() + "' na palavra");
			}
			
		} while (controller.fimDeJogo());
		if (controller.resultado()){
			System.out.println("Parabens, voce se salvou da forca! A palavra era '" + controller.getPalavraDaVez() + 
							   "' Jogar de novo (s/n)?");
		} else {
			System.out.println("Lamento, voc� foi enforcado... A palavra era '" + controller.getPal() +
					           "' Jogar de novo (s/n)?");
		}
		entrada = scanner.nextLine();
		if (controller.trataEntradaFinal(entrada) == "S".charAt(0)){
			controller.novoJogo();
		} else {
			System.out.println("Volte sempre!");
		}
	
	}


	
}
